.yf-loading {
    width: 40px;
    height: 40px;
    display: inline-block;
    margin: 10px;
    position: relative;
    border: 4px solid;
    animation: loader 4s infinite ease;
}

.yf-loading--large {
    width: 50px;
    height: 50px;
}

.yf-loading--medium {
    width: 40px;
    height: 40px;
}

.yf-loading--small {
    width: 30px;
    height: 30px;
}

.yf-loading__inner {
    vertical-align: top;
    display: inline-block;
    width: 100%;
    /* background-color: aqua; */
    animation: loader-inner 4s infinite ease-in;
}

@keyframes loader {
    0% {
        transform: rotate(0deg);
    }

    25% {
        transform: rotate(180deg);
    }

    50% {
        transform: rotate(180deg);
    }

    75% {
        transform: rotate(360deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes loader-inner {
    0% {
        height: 0%;
    }

    25% {
        height: 0%;
    }

    50% {
        height: 100%;
    }

    75% {
        height: 100%;
    }

    100% {
        height: 0%;
    }
}